10 PRINT"[147][144]";:POKE53281,12:POKE53280,12:PRINTCHR$(14) 20 FORI=1TO23 30 READA$ 40 IFA$="[157]"THENGOSUB80:END 50 PRINTA$ 60 NEXT 70 GOSUB80:GOTO20 80 PRINT" PRESS A KEY TO CONTINUE[146]"; 90 GETB$:IFB$=""THEN90 100 PRINT"[147]":RETURN 10000 DATA" [205][204] [193][208][208][197][206][196][197][210] 64 10010 [131]" BY 10020 DATA" [205]IKE [203]OZAKIEWICZ 10030 [131]" 10040 DATA" 10050 [131]"(null)(null)(null)(null)(null)(null)VAL 10060 DATA" 10070 [131]"(null)(null) ATN(null)(null)VAL(null)STR$VAL(null) 64 IS USED TO CREATE A 10080 DATA"SINGLE FILE FROM SEPARATE [194][193][211][201][195] AND AN 10090 [131]"(null)(null) PROGRAMS WHICH WORK TOGETHER. (null)ANY 10100 DATA"PROGRAMS HAVE BOTH [194][193][211][201][195] AND [205][204] PARTS. 10110 [131]"RIGHT$T IS INCONVENIENT TO LOAD EACH PART OF 10120 DATA"THE PROGRAM INDIVIDUALLY, SO THE 10130 [131]"PROGRAMMER FREQUENTLY WILL MAKE A 10140 DATA"'[194]OOT' PROGRAM WHICH [204][207][193][196]S THE [205][204] PART 10150 [131]"AND THEN (null)(null)ATNSTR$S AND (null)(null)(null)S THE PEEKATN(null)RIGHT$LEN PART. 10160 DATA"[215]HEN A '[194]OOT' IS USED, THE PROGRAM WILL 10170 [131]"CONSISTS OF THREE FILES. (null)(null) ATN(null)(null)VAL(null)STR$VAL(null) 64 10180 DATA"ELIMINATES THE NEED FOR A '[194]OOT', AND 10190 [131]"COMBINES THE PEEKATN(null)RIGHT$LEN AND (null)(null) PORTIONS OF A 10200 DATA"PROGRAM WITHOUT GENERATING [196][193][212][193] 10210 [131]"STATEMENTS. 10220 DATA" 10230 [131]" 10240 DATA" 10250 [131]"LEFT$(null)(null) (null)(null) (null)(null)VAL (null)(null) ATN(null)(null)VAL(null)STR$VAL(null) 64 10260 DATA" 10270 [131]"1. WRITE THE PEEKATN(null)RIGHT$LEN PART OF YOUR PROGRAM 10280 DATA"AND SAVE IT TO DISK. 10290 [131]" 10300 DATA"2. WRITE THE [205][204] PART OF YOUR PROGRAM 10310 [131]"AND SAVE IT TO THE SAME DISK. (null)AVE THE 10320 DATA"[205][204] WITH A UTILITY THAT ALLOWS SAVING 10330 [131]"ANY BLOCK OF THE COMPUTER'S MEMORY (EG. 10340 DATA"[211][213][208][197][210][205][207][206]). 10350 [131]" 10360 DATA"3. [204][207][193][196] AND [210][213][206] [205][204] [193][208][208][197][206][196][197][210] 64. [201]N 10370 [131]"RESPONSE TO ITS PROMPTS, INDICATE THE 10380 DATA"[194][193][211][201][195] PROGRAM AND THE [205][204] PROGRAM THAT 10390 [131]"ARE TO BE MERGED. (null)(null)(null)VAL: YOU CAN VIEW 10400 DATA"THE DISK DIRECTORY BY RESPONDING TO THE 10410 [131]"PROMPT BY ENTERING A DOLLAR SIGN ($). 10420 DATA" 10430 [131]" 10440 DATA"[205][204] [193][208][208][197][206][196][197][210] 64 10450 [131]" 10460 DATA"[215]ILL RESET THE START OF [194][193][211][201][195] TEXT 10470 [131]"MEMORY. RIGHT$T THEN (null)(null)ATNSTR$S IN FIRST THE 10480 DATA"[194][193][211][201][195] PROGRAM AND THEN THE [205][204] PROGRAM. 10490 [131]"(null)O THE END OF THE (null)(null) PROGRAM IT ADDS A 10500 DATA"[205][207][214][197][210] ROUTINE AND FOUR DATA BYTES THAT 10510 [131]"INDICATE WHERE THE (null)(null) PROGRAM SHOULD BE 10520 DATA"MOVED WHEN THE [194][193][211][201][195] PROGRAM IS RUN. 10530 [131]" 10540 DATA"[194]EFORE [210][213][206]NING OR [211][193][214][197]ING THE NEW 10550 [131]"COMBINATION PEEKATN(null)RIGHT$LEN AND (null)(null) PROGRAM, YOU 10560 DATA"MUST ADD THE FOLLOWING LINE TO THE 10570 [131]"PEEKATN(null)RIGHT$LEN PART. 10580 DATA" 10590 [131]"SYS(PEEK(45)+PEEK(46)*256-63) 10600 DATA" 10610 [131]"(null)HIS SYS ACTIVATES THE (null)(null)(null)VAL(null) TO PUT 10620 DATA"YOUR [205][204] ROUTINE WHERE IT BELONGS IN 10630 [131]"MEMORY. PEEKECAUSE THE (null)(null)(null)VAL(null) IS 10640 DATA"RELOCATABLE, YOU MAY MAKE CHANGES TO 10650 [131]"YOUR PEEKATN(null)RIGHT$LEN PROGRAM WITHOUT ADVERSELY 10660 DATA"AFFECTING THE [205][204] PROGRAM THAT IS 10670 [131]"APPENDED TO THE PEEKATN(null)RIGHT$LEN PROGRAM. RIGHT$ 10680 DATA"RECOMMEND THAT THE NEW SYS STATEMENT BE 10690 [131]"PUT EARLY IN YOUR PROGRAM IN A PLACE 10700 DATA"THAT WILL NOT BE EXECUTED MORE THAN 10710 [131]"ONCE DURING THE (null)(null)(null)NING OF THE 10720 DATA"PROGRAM. 10730 [131]" 10740 DATA" 10750 [131]"LEFT$(null)(null) ATN(null)STR$ (null)LEFT$(null) (null)(null) ATN(null)(null)VAL(null)STR$VAL(null) 64 (null)(null)(null)(null)(null) 10760 DATA" 10770 [131]"ASCOR THOSE OF YOU WHO ARE NOT 10780 DATA"PROGRAMMERS, YOU NEED NOT READ FURTHER. 10790 [131]"ASCOR THOSE WHO CARE, HERE IS HOW (null)(null) 10800 DATA"[193][208][208][197][206][196][197][210] 64 WORKS. 10810 [131]" 10820 DATA"[201]N MEMORY, [194][193][211][201][195] PROGRAMS END WITH 10830 [131]"THREE BINARY ZEROS ((null)PEEK(null)). (null)HE START OF 10840 DATA"[194][193][211][201][195] VARIABLES ([211][207][214]) ORDINARILY BEGINS 10850 [131]"IMMEDIATELY AFTER THE (null)PEEK(null). LEFT$OWEVER THE 10860 DATA"[211][207][214] POINTER (WHICH IS LOCATED ON ZERO 10870 [131]"PAGE AT LOCATIONS 45 AND 46) CAN BE SET 10880 DATA"SO THAT THERE IS SPACE BETWEEN THE [212][194][218] 10890 [131]"AND THE (null)(null)(null). (null)HE SIZE OF THIS SPACE IS 10900 DATA"NOT ALTERED IF THE [194][193][211][201][195] PROGRAM IS 10910 [131]"CHANGED (EG. LINES ADDED OR DELETED). 10920 DATA"[212]HE SPACE WILL MOVE UP AND DOWN IN 10930 [131]"MEMORY, BUT WILL NOT OTHERWISE BE 10940 DATA"ALTERED. [193] [205][204] PROGRAM COULD BE PUT IN 10950 [131]"THIS AREA IF IT WERE RELOCATABLE. (null)ANY 10960 DATA"(AND IN FACT MOST) [205][204] PROGRAMS ARE [206][207][212] 10970 [131]"RELOCATABLE, SO THIS AREA IS NOT USEFUL 10980 DATA"FOR RUNNING MOST [205][204] PROGRAMS. 10990 [131]" 11000 DATA"[205][204] [193][208][208][197][206][196][197][210] 64 LOADS THE [205][204] PROGRAM 11010 [131]"THAT YOU DESIGNATE INTO THE MEMORY 11020 DATA"SPACE BETWEEN THE [212][194][218] AND THE [211][207][214]. [201]N 11030 [131]"ADDITION, IT PUTS A RELOCATABLE (null)(null) 11040 DATA"[205][207][214][197][210] ROUTINE AT THE END OF YOUR [205][204] 11050 [131]"ROUTINE. (null)HIS (null)(null)(null)VAL(null) ROUTINE IS 63 BYTES 11060 DATA"LONG, INCLUDING FOUR DATA BYTES AT THE 11070 [131]"END OF THE ROUTINE. (null)HE DATA BYTES 11080 DATA"GIVE THE [205][207][214][197][210] THE INFORMATION IT NEEDS 11090 [131]"TO KNOW IN ORDER TO MOVE YOUR (null)(null) 11100 DATA"ROUTINE TO WHERE IT BELONGS. [194]ECAUSE 11110 [131]"THE MOVER IS LOCATED 63 BYTES BEFORE 11120 DATA"THE [211][207][214], IT IS ACTIVATED BY 11130 [131]"SYS(PEEK(45)+PEEK(46)*256-63). 11140 DATA" 11150 [131]" 11160 DATA" [205]IKE [203]OZAKIEWICZ 11170 [131]" 175 (null)HARON STR$RIVE 11180 DATA" [210]OCHESTER, [206][217] 14626 11190 [131]" (null)(null)ATN 11200 DATA" 11210 [131]"CMD